/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

import Model.MaterielDAO;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.text.DateFormatter;

/**
 *
 * @author Romain
 */
public class CodeBarre {
    
    private Materiel mat;
    private Long numCB;
    private Integer modulo;
    private Integer checkDigit;
    private String codeBarreTemp;
    private Connection connect;
    
    public CodeBarre(Materiel mat,Connection connect){
        this.mat = mat;
        this.connect = connect;
    }
    
    public Long creerCodeBarre(){
        if (this.mat.getSecteur() != null && this.mat.getDateHT() != null && this.mat.getType() != null) {
            
            String secteur = String.valueOf(this.mat.getSecteur().getId());
            SimpleDateFormat dt = new SimpleDateFormat("YY");
            String date = dt.format(this.mat.getDateHT()).toString();
            String type = this.mat.getType().getIdT();
            String cb = new MaterielDAO(this.connect).getIdCb();

            codeBarreTemp = secteur + date + type + cb;

            
            String[] mesNum = codeBarreTemp.split("");

            modulo = (Integer.valueOf(mesNum[1]) + (Integer.valueOf(mesNum[2]) * 3) + Integer.valueOf(mesNum[3]) + (Integer.valueOf(mesNum[4]) * 3) 
                    + Integer.valueOf(mesNum[5]) + (Integer.valueOf(mesNum[6]) * 3) + Integer.valueOf(mesNum[7]) + (Integer.valueOf(mesNum[8]) * 3) 
                    + Integer.valueOf(mesNum[9]) + (Integer.valueOf(mesNum[10]) * 3) + Integer.valueOf(mesNum[11]) + (Integer.valueOf(mesNum[12]) * 3)) % 10;
            checkDigit = 10 - modulo;
            
            if (checkDigit == 10) {
                checkDigit = 0; 
            }
            
            codeBarreTemp = codeBarreTemp + checkDigit.toString();
            
            numCB = Long.valueOf(codeBarreTemp);
            
            return  numCB;
        }
        else {
            System.out.println(" >>>>>>  Vérifiez que les champs de ce matériel sont bien tous remplis !!  <<<<<<");
        
            return  null;
        }
    }
    
}
